2026-10-12T12:22:25.9727138Z Current runner version: '0.3.1'
2026-10-12T12:22:25.9727180Z Runner name: 'g1t'
2026-10-12T12:22:25.9727188Z ##[group]Operating System
2026-10-12T12:22:25.9727197Z Debian GNU/Linux
2026-10-12T12:22:25.9727203Z 12 (bookworm)
2026-10-12T12:22:25.9727212Z ##[endgroup]
2026-10-12T12:22:25.9727217Z ##[group]Runner Image
2026-10-12T12:22:25.9727237Z Included Software: Node 24, Python 3, Go, Rust
2026-10-12T12:22:25.9727244Z ##[endgroup]
2026-10-12T12:22:25.9727252Z ##[group]Machine
2026-10-12T12:22:25.9727257Z Hosted by g1t
2026-10-12T12:22:25.9727263Z Architecture: X64
2026-10-12T12:22:25.9727269Z CPUs: 1
2026-10-12T12:22:25.9727275Z Memory: 4.1 GB
2026-10-12T12:22:25.9727281Z ##[endgroup]
2026-10-12T12:22:25.9727286Z ##[group]G1T_TOKEN Permissions
2026-10-12T12:22:25.9727292Z Contents: read
2026-10-12T12:22:25.9727298Z Metadata: read
2026-10-12T12:22:25.9727303Z ##[endgroup]
2026-10-12T12:22:25.9727310Z Secret source: Actions
2026-10-12T12:22:25.9727316Z Prepare workflow directory
2026-10-12T12:22:25.9816363Z Prepare all required actions
2026-10-12T12:22:25.9816387Z Getting action download info
2026-10-12T12:22:25.9817922Z Getting action download info for 'actions/checkout@v5'
2026-10-12T12:22:26.5774204Z Download action repository 'actions/checkout@v5' (SHA:fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09) from g1t
2026-10-12T12:22:26.9653410Z Complete job name: The tag names this version
2026-10-12T12:22:27.2661680Z ##[group]Run actions/checkout@v5
2026-10-12T12:22:27.2661701Z with:
2026-10-12T12:22:27.2661710Z   allow-unsafe-pr-checkout: false
2026-10-12T12:22:27.2661718Z   clean: true
2026-10-12T12:22:27.2661724Z   fetch-depth: 1
2026-10-12T12:22:27.2661731Z   fetch-tags: false
2026-10-12T12:22:27.2661737Z   filter: 
2026-10-12T12:22:27.2661743Z   github-server-url: 
2026-10-12T12:22:27.2661748Z   lfs: false
2026-10-12T12:22:27.2661754Z   path: 
2026-10-12T12:22:27.2661783Z   persist-credentials: true
2026-10-12T12:22:27.2661789Z   ref: 
2026-10-12T12:22:27.2661795Z   repository: flagon-io/g1t
2026-10-12T12:22:27.2661801Z   set-safe-directory: true
2026-10-12T12:22:27.2661806Z   show-progress: true
2026-10-12T12:22:27.2661812Z   sparse-checkout: 
2026-10-12T12:22:27.2661817Z   sparse-checkout-cone-mode: true
2026-10-12T12:22:27.2661822Z   ssh-key: 
2026-10-12T12:22:27.2661828Z   ssh-known-hosts: 
2026-10-12T12:22:27.2661834Z   ssh-strict: true
2026-10-12T12:22:27.2661840Z   ssh-user: git
2026-10-12T12:22:27.2661845Z   submodules: false
2026-10-12T12:22:27.2661880Z   token: ***
2026-10-12T12:22:27.2661886Z env:
2026-10-12T12:22:27.2661933Z   CLOUDFLARE_ACCOUNT_ID: 1e6f2cffa3f445920836e8ebe446bb58
2026-10-12T12:22:27.2661939Z   WRANGLER_SEND_METRICS: false
2026-10-12T12:22:27.2661945Z ##[endgroup]
2026-10-12T12:22:27.6005000Z Syncing repository: flagon-io/g1t
2026-10-12T12:22:27.6007410Z ##[group]Getting Git version info
2026-10-12T12:22:27.6008198Z Working directory is '/home/runner/work/repo'
2026-10-12T12:22:27.6041788Z [command]/usr/bin/git version
2026-10-12T12:22:27.6129529Z git version 2.39.5
2026-10-12T12:22:27.6155081Z ##[endgroup]
2026-10-12T12:22:27.6187952Z Temporarily overriding HOME='/home/runner/_temp/28abf922-4b99-4a8a-8058-c5baf76d56b7' before making global git config changes
2026-10-12T12:22:27.6197458Z Adding repository directory to the temporary git global config as a safe directory
2026-10-12T12:22:27.6214283Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/repo
2026-10-12T12:22:27.6277417Z Deleting the contents of '/home/runner/work/repo'
2026-10-12T12:22:27.6279665Z ##[group]Initializing the repository
2026-10-12T12:22:27.6284059Z [command]/usr/bin/git init /home/runner/work/repo
2026-10-12T12:22:27.6342954Z hint: Using 'master' as the name for the initial branch. This default branch name
2026-10-12T12:22:27.6344618Z hint: is subject to change. To configure the initial branch name to use in all
2026-10-12T12:22:27.6344667Z hint: of your new repositories, which will suppress this warning, call:
2026-10-12T12:22:27.6344679Z hint: 
2026-10-12T12:22:27.6344695Z hint: 	git config --global init.defaultBranch <name>
2026-10-12T12:22:27.6344705Z hint: 
2026-10-12T12:22:27.6344741Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
2026-10-12T12:22:27.6344774Z hint: 'development'. The just-created branch can be renamed via this command:
2026-10-12T12:22:27.6344782Z hint: 
2026-10-12T12:22:27.6344791Z hint: 	git branch -m <name>
2026-10-12T12:22:27.6352545Z Initialized empty Git repository in /home/runner/work/repo/.git/
2026-10-12T12:22:27.6361695Z [command]/usr/bin/git remote add origin https://g1t.sh/flagon-io/g1t
2026-10-12T12:22:27.6386777Z ##[endgroup]
2026-10-12T12:22:27.6387022Z ##[group]Disabling automatic garbage collection
2026-10-12T12:22:27.6391610Z [command]/usr/bin/git config --local gc.auto 0
2026-10-12T12:22:27.6419168Z ##[endgroup]
2026-10-12T12:22:27.6419398Z ##[group]Setting up auth
2026-10-12T12:22:27.6425126Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-10-12T12:22:27.6452038Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
2026-10-12T12:22:27.6811222Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/g1t\.sh\/\.extraheader
2026-10-12T12:22:27.6835141Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/g1t\.sh\/\.extraheader' && git config --local --unset-all 'http.https://g1t.sh/.extraheader' || :"
2026-10-12T12:22:27.7042237Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-10-12T12:22:27.7073074Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-10-12T12:22:27.7276612Z [command]/usr/bin/git config --local http.https://g1t.sh/.extraheader AUTHORIZATION: basic ***
2026-10-12T12:22:27.7303747Z ##[endgroup]
2026-10-12T12:22:27.7304078Z ##[group]Fetching the repository
2026-10-12T12:22:27.7310373Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +c8e1680a6c3f096bc36c42130426479f9a59d725:refs/tags/desktop-v0.3.2
2026-10-12T12:22:28.5819342Z From https://g1t.sh/flagon-io/g1t
2026-10-12T12:22:28.5819467Z  * [new ref]         c8e1680a6c3f096bc36c42130426479f9a59d725 -> desktop-v0.3.2
2026-10-12T12:22:28.5830897Z ##[endgroup]
2026-10-12T12:22:28.5830948Z ##[group]Determining the checkout info
2026-10-12T12:22:28.5830969Z ##[endgroup]
2026-10-12T12:22:28.5831906Z [command]/usr/bin/git sparse-checkout disable
2026-10-12T12:22:28.5862486Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig
2026-10-12T12:22:28.5884827Z ##[group]Checking out the ref
2026-10-12T12:22:28.5888749Z [command]/usr/bin/git checkout --progress --force refs/tags/desktop-v0.3.2
2026-10-12T12:22:28.8278332Z Note: switching to 'refs/tags/desktop-v0.3.2'.
2026-10-12T12:22:28.8278385Z 
2026-10-12T12:22:28.8278453Z You are in 'detached HEAD' state. You can look around, make experimental
2026-10-12T12:22:28.8278504Z changes and commit them, and you can discard any commits you make in this
2026-10-12T12:22:28.8278557Z state without impacting any branches by switching back to a branch.
2026-10-12T12:22:28.8278568Z 
2026-10-12T12:22:28.8278602Z If you want to create a new branch to retain commits you create, you may
2026-10-12T12:22:28.8278641Z do so (now or later) by using -c with the switch command. Example:
2026-10-12T12:22:28.8278652Z 
2026-10-12T12:22:28.8278665Z   git switch -c <new-branch-name>
2026-10-12T12:22:28.8278672Z 
2026-10-12T12:22:28.8278686Z Or undo this operation with:
2026-10-12T12:22:28.8278694Z 
2026-10-12T12:22:28.8278703Z   git switch -
2026-10-12T12:22:28.8278711Z 
2026-10-12T12:22:28.8278743Z Turn off this advice by setting config variable advice.detachedHead to false
2026-10-12T12:22:28.8278750Z 
2026-10-12T12:22:28.8278952Z HEAD is now at c8e1680 The desktop app is 0.3.2, and its runner updates are fast, seen and only ever g1t's. The app now trusts a g1t-runner release only when its manifest's Ed25519 signature, latest.json.sig, checks out against g1t's runner release key, which is built into the app (the public half of RUNNER_RELEASE_PUBLIC_KEY, kept in runner/native.rs, where development builds have it too; G1T_RUNNER_RELEASE_KEY overrides it for a g1t with its own key), as the runner already did with its own updates. A manifest with no signature, or one that doesn't check out, is refused and nothing in it is used: the runner keeps the version it has and says "Update refused: not signed by g1t", or, with no runner installed yet, "Not running: the runner's release isn't signed by g1t", each with why and what to do. It looks every hour rather than every six, on a thread of its own so the runner is looked after meanwhile, and what it finds waits, downloaded and checked, until each kind of job is idle, then goes in kind by kind, never cutting a job short: Linux jobs take the release's image (sandbox update) as soon as they have no job, while Windows jobs, whose runner is the program itself, are stopped after their job (sandbox down --only windows --drain), the program is replaced and they start again, the other kind running on throughout; a runner in Docker or on the computer stops between jobs and starts on the new one. The program there is moved aside rather than overwritten, so a status the app is asking at that moment can't stop it. Each kind of job's card in Settings shows its runner version, when the app last looked ("Checked 12 min ago") and a newer one waiting ("0.3.2 ready, installs after this job", "Installing 0.3.2"), and "Check for runner updates" beside the computer's name looks at once and installs what it finds, even with "Download updates by themselves" off, which otherwise stops the hourly look. The desktop report carries the same (snake_case: the diagnosis's update, with checked_at, ready and note, and each kind's update), so the Runners page's Desktops cards show it, "Checked" with how long ago, and this computer's row has the button too. All the words are diagnosis.rs's. The desktop guide says how updates work, what each card shows, the new troubleshooting rows and where the release key lives. Tests cover the signature with a key pair of their own and with release 0.3.0's manifest and signature as g1t.sh published them, kept byte for byte (.gitattributes), the wording, the cards and the report.
2026-10-12T12:22:28.8281228Z ##[endgroup]
2026-10-12T12:22:28.8320044Z [command]/usr/bin/git log -1 --format=%H
2026-10-12T12:22:28.8339857Z c8e1680a6c3f096bc36c42130426479f9a59d725
2026-10-12T12:22:29.2418252Z ##[group]Run version="$(sed -n 's/^version = "\(.*\)"/\1/p' apps/desktop/src-tauri/Cargo.toml | head -1)"
2026-10-12T12:22:29.2418314Z [36;1mversion="$(sed -n 's/^version = "\(.*\)"/\1/p' apps/desktop/src-tauri/Cargo.toml | head -1)"[0m
2026-10-12T12:22:29.2418332Z [36;1mecho "version=$version" >> "$GITHUB_OUTPUT"[0m
2026-10-12T12:22:29.2418371Z [36;1mif [ "${GITHUB_REF_TYPE}" = tag ] && [ "desktop-v$version" != "${GITHUB_REF_NAME}" ]; then[0m
2026-10-12T12:22:29.2418409Z [36;1m  echo "::error::The tag is ${GITHUB_REF_NAME}, but apps/desktop is $version"; exit 1[0m
2026-10-12T12:22:29.2418419Z [36;1mfi[0m
2026-10-12T12:22:29.2418426Z shell: /usr/bin/bash -e {0}
2026-10-12T12:22:29.2418432Z env:
2026-10-12T12:22:29.2418462Z   CLOUDFLARE_ACCOUNT_ID: 1e6f2cffa3f445920836e8ebe446bb58
2026-10-12T12:22:29.2418468Z   WRANGLER_SEND_METRICS: false
2026-10-12T12:22:29.2418474Z ##[endgroup]
2026-10-12T12:22:29.8558198Z [command]/usr/bin/git version
2026-10-12T12:22:29.8596850Z git version 2.39.5
2026-10-12T12:22:29.8629048Z Temporarily overriding HOME='/home/runner/_temp/5d1df485-d86d-4138-ba98-7c0da4160c11' before making global git config changes
2026-10-12T12:22:29.8629540Z Adding repository directory to the temporary git global config as a safe directory
2026-10-12T12:22:29.8635184Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/repo
2026-10-12T12:22:29.8670830Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-10-12T12:22:29.8703269Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
2026-10-12T12:22:29.8919306Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/g1t\.sh\/\.extraheader
2026-10-12T12:22:29.8939475Z http.https://g1t.sh/.extraheader
2026-10-12T12:22:29.8951484Z [command]/usr/bin/git config --local --unset-all http.https://g1t.sh/.extraheader
2026-10-12T12:22:29.8978197Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/g1t\.sh\/\.extraheader' && git config --local --unset-all 'http.https://g1t.sh/.extraheader' || :"
2026-10-12T12:22:29.9182214Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-10-12T12:22:29.9207631Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-10-12T12:22:30.6760856Z Evaluate and set job outputs
2026-10-12T12:22:30.6761041Z Set output 'version'
2026-10-12T12:22:30.6761167Z Cleaning up orphan processes
